<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>作用域</title>
    <script>
        /**
         * 代码所在的一块区域，相对于执行上下文，作用域是个静态的概念 
         * 在编写代码是就确定了，不会再变
         * 分为：全局作用域和函数作用域，ES6之前不存在块（大括号）作用域
         * 作用：隔离变量，不用作用域变量名相同时也不会冲突
         * 
         * 执行上下文从属于所在的作用域，全局上下文对应全局作用域，函数上下文对应函数作用域
         * 
         */
        var a = 10, b = 20
        function fn(x) {
            var a = 100, c = 300
            console.log('fn()', a, b, c, x)
            function bar(x) {
                var a = 1000, d = 400
                console.log('bar()',a,b,c,d,x)
            }
            
            bar(100)
            bar(200)
            
        }
        
        fn(10)
        
    </script>
</head>
<body>

</body>
</html>
